home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / emacssrc.zip / EMACSSRC.TAR / emacs-19.17 / build-install.in next >
Text File  |  1993-07-23  |  5KB  |  137 lines

  1. #!/bin/sh -x
  2. #
  3. #Shell script for building and installing Emacs.
  4.  
  5. # ==================== Where To Install Things ====================
  6.  
  7. # The default location for installation.  Everything is placed in
  8. # subdirectories of this directory.  This directory must exist when
  9. # you start installation.  The default values for many of the
  10. # variables below are expressed in terms of this one, so you may not
  11. # need to change them.
  12. prefix=/usr/local
  13.  
  14. # Where to install Emacs and other binaries that people will want to
  15. # run directly (like etags).
  16. bindir=${prefix}/bin
  17.  
  18. # A directory under which we will install many of Emacs's files.  The
  19. # default values for many of the variables below are expressed in
  20. # terms of this one, so you may not need to change them.
  21. emacsdir=${prefix}/emacs-19.0
  22.  
  23. # Where to install and expect the architecture-independent data files
  24. # (like the tutorial and the Zippy database).
  25. datadir=${emacsdir}/etc
  26.  
  27. # Where to install the elisp files distributed with Emacs.  Strictly
  28. # speaking, all the elisp files should go under datadir (above), since
  29. # both elisp source and compiled elisp are completely portable, but
  30. # it's traditional to give the lisp files their own subdirectory.
  31. lispdir=${emacsdir}/lisp
  32.  
  33. # Directories Emacs should search for elisp files specific to this
  34. # site (i.e. customizations), before consulting ${lispdir}.  This
  35. # should be a colon-separated list of directories.
  36. locallisppath=${emacsdir}/local-lisp
  37.  
  38. # Where Emacs will search to find its elisp files.  Before changing
  39. # this, check to see if your purpose wouldn't better be served by
  40. # changing locallisppath.  This should be a colon-separated list of
  41. # directories.
  42. lisppath=${locallisppath}:${lispdir}
  43.  
  44. # Where Emacs will search for its elisp files before dumping.  This is
  45. # only used during the process of compiling Emacs, to help Emacs find
  46. # its lisp files before they've been installed in their final
  47. # location.  It's usually identical to lisppath, except that the entry
  48. # for the directory containing the installed lisp files has been
  49. # replaced with ../lisp.  This should be a colon-separated list of
  50. # directories.
  51. dumplisppath=../lisp
  52.  
  53. # Where to install and expect the files that Emacs modifies as it
  54. # runs.     These files are all architecture-independent.    Right now,
  55. # the only such data is the locking directory.
  56. statedir=${emacsdir}
  57.  
  58. # Where to create and expect the locking directory, where the Emacs
  59. # locking code keeps track of which files are currently being edited.
  60. lockdir=${statedir}/lock
  61.  
  62. # Where to install and expect executable files to be run by Emacs
  63. # rather than directly by users, and other architecture-dependent
  64. # data.
  65. libdir=${emacsdir}/arch-lib
  66.  
  67. # Where to install Emacs's man pages.
  68. mandir=/usr/man/man1
  69.  
  70. # Where to install and expect the info files describing Emacs.    In the
  71. # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
  72. # since there are now many packages documented with the texinfo
  73. # system, it is inappropriate to imply that it is part of Emacs.
  74. infodir=${prefix}/info
  75.  
  76. removenullpaths="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'"
  77.  
  78. lisppath=`echo ${lisppath} | ${removenullpaths}` ;        \
  79. dumplisppath=`echo ${dumplisppath} | ${removenullpaths}` ;    \
  80. /bin/sed < src/paths.h.in > src/paths.h                \
  81. -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'        \
  82. -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";'    \
  83. -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";'            \
  84. -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";'            \
  85. -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'
  86.  
  87. (cd lib-src; make) || exit 1
  88. (cd src; make) || exit 1
  89.  
  90. # Subdirectories to install, and where they'll go.
  91. copydir=arch-lib etc info lisp
  92. copydests=${libdir} ${datadir} ${infodir} ${lispdir}
  93.  
  94. # If any of the directories are below ${emacsdir} or ${statedir}, create them.
  95. for dir in ${copydests}; do
  96.   case "${dir}" in
  97.     ${emacsdir}/* )
  98.       if [ ! -d ${emacsdir} ]; then
  99.     -mkdir ${emacsdir}
  100.     -chmod 777 ${emacsdir}
  101.       fi
  102.     ;;
  103.     ${statedir}/* )
  104.       if [ ! -d ${statedir} ]; then
  105.     -mkdir ${statedir}
  106.     -chmod 777 ${statedir}
  107.       fi
  108.     ;;
  109.   esac
  110. done
  111.  
  112. set ${copydests}
  113. for dir in ${copydir} ; do
  114.   dest=$1 ; shift
  115.   mv ${dir} ${dest}
  116.   if [ $? != 0 ]; then
  117.     echo mv ${dir} to ${dest} failed -- using tar to copy.
  118.     if [ `/bin/pwd`/${dir} != `(cd ${dest}; /bin/pwd)` ] ; then
  119.       (cd ${dir}; tar cf - . ) | (cd ${dest}; umask 0; tar xf - )
  120.       if [ $? != 0 ]; then
  121.     echo "tar-copying ${dir} to ${dest} failed too.  I give up."
  122.     exit 1
  123.       fi
  124.       for subdir in `find ${dest} -type d ! -name RCS -print` ; do
  125.     rm -rf ${subdir}/RCS
  126.     rm -f  ${subdir}/\#*
  127.     rm -f  ${subdir}/*~
  128.       done
  129.     fi
  130.   fi
  131. done
  132.  
  133. cp ${libdir}/[ce]tags ${bindir}
  134. mv src/xemacs ${BINDIR}/emacs
  135. rm src/temacs
  136. chmod 777 ${bindir}/[ce]tags ${bindir}/emacs
  137.